package hcn.protocol.brandnew.dengji.menzhenyuyue;

import lombok.Data;
import javax.xml.bind.annotation.*;
import java.util.List;
import hcn.protocol.brandnew.BaseRequest;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import ctd.util.xml.jaxb.DateTimeAdapter;
import org.atag.sysrouter.annotation.DictionaryMapping;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;


/**
 * 门诊预约信息新增-响应消息(成功) - ODS_02040012_SUC
 *
 * @author enjoyLife
 */
@Data
@XmlRootElement(name = "Data")
@XmlAccessorType(XmlAccessType.FIELD)
public class ConfirmAppointmentResponse {

    /**
     * 预约信息
     */
    @XmlElement(name = "ResultQuantity")
    private ResultQuantity resultQuantity;

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class ResultQuantity {

        /**
         * 医疗机构组织机构代码
         */
        @XmlElement(name = "VisitOrganization")
        private String visitOrganization;
        /**
         * 患者ID
         */
        @XmlElement(name = "SourcePatientId")
        private String sourcePatientId;
        /**
         * 身份证件号码
         */
        @XmlElement(name = "IdCard")
        private String idCard;
        /**
         * 身份证件类别代码
         */
        @XmlElement(name = "IdCardCode")
        @DictionaryMapping(id = "CV02_01_101")
        private String idCardCode;
        /**
         * 就诊卡类别代码
         */
        @XmlElement(name = "MedicalCardType")
        private String medicalCardType;
        /**
         * 就诊卡号
         */
        @XmlElement(name = "MedicalCardId")
        private String medicalCardId;
        /**
         * 患者姓名
         */
        @XmlElement(name = "Name")
        private String name;
        /**
         * 资源ID
         */
        @XmlElement(name = "ResourcesId")
        private String resourcesId;
        /**
         * 就诊地址
         */
        @XmlElement(name = "AdmitAddress")
        private String admitAddress;
        /**
         * 预约日期时间
         */
        @XmlElement(name = "AppointmentDateTime")
        private String appointmentDateTime;
        /**
         * 预约状态码
         */
        @XmlElement(name = "AppointmentStatus")
        private String appointmentStatus;
        /**
         * 预约顺序号
         */
        @XmlElement(name = "AppointsSequenceNo")
        private Short appointsSequenceNo;
        /**
         * 预约记录流水号
         */
        @XmlElement(name = "AppointsId")
        private String appointsId;
        /**
         * 发票号码
         */
        @XmlElement(name = "InvoiceCode")
        private String invoiceCode;
        /**
         * 截止支付时间
         */
        @XmlElement(name = "SettleEndDateTime")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date settleEndDateTime;
        /**
         * 取号凭证
         */
        @XmlElement(name = "Voucher")
        private String voucher;
        /**
         * 支付状态
         */
        @XmlElement(name = "PayStatus")
        private String payStatus;
        /**
         * 挂号费
         */
        @XmlElement(name = "RegisteredCost")
        private String registeredCost;
        /**
         * 诊查费
         */
        @XmlElement(name = "ExaminationCost")
        private String examinationCost;
        /**
         * 专家费
         */
        @XmlElement(name = "DoctorCost")
        private String doctorCost;
        /**
         * 病历本费
         */
        @XmlElement(name = "BookCost")
        private String bookCost;
        /**
         * 就诊卡费
         */
        @XmlElement(name = "CardCost")
        private String cardCost;
    }

}
